Oversigt

Med Microsoft ODBC Driver til Oracle kan du oprette forbindelse mellem et program, som understøtter ODBC, og en Oracle-database. I denne version er ydeevnen øget, og der er tilføjet yderligere styrefunktioner, herunder adgang til PL/SQL-objektpakker, XA/DTC-integrering og adgang til Oracle fra Microsoft Internet Information Server (IIS). Microsoft ODBC Driver til Oracle er kompatibel med specifikationen Open Database Connectivity (ODBC) som beskrevet i ODBC Programmer's Reference til det program, du bruger.

I denne Hjælp-fil beskrives installation, konfigurering og brug af Microsoft ODBC Driver til Oracle. Der er følgende afsnit:

•	Systemkrav

•	Tilføje og ændre datakilder ved hjælp af Installation

•	Konfigurere Microsoft Oracle ODBC Driver

•	Tilslutte til en datakilde

•	Attributter til tilslutningsstrenge

•	ODBC-kompatibilitetsniveauer

•	SQL-kompatibilitetsniveauer

•	Tilknytte datatyper

•	Brug af Microsoft Transaction Server

•	Brug af Microsoft Internet Information Server

•	Brug af operativsystemgodkendelse

•	Begrænset brug af nøglesætdrevne markører

•	Returnere matriksparametre fra lagrede procedurer

•	Bemærkninger til API-funktioner

•	Bemærkninger til trådsikkerhed i API-funktioner

•	API-funktioner på kerneniveau

•	API-funktioner på niveau 1

•	API-funktioner på niveau 2

•	Tabel med tilslutningsindstillinger

•	Tabel med sætningsindstillinger

•	Tabel med markørtyper og samtidighedskombinationer

•	Fejlmeddelelser


Systemkrav

Du kan kun benytte Microsoft ODBC Driver til Oracle, hvis Microsoft Windows 95/98 eller Microsoft Windows NT og Oracle Client Software version 7.3 eller nyere er installeret på dit Windows-system. Microsoft ODBC Driver til Oracle understøtter kun SQL*Net 2.3 eller nyere. Yderligere oplysninger om Oracle-produkter finder du i dokumentationen til Oracle.


Tilføje og ændre datakilder med Installation

En datakilde identificerer en sti til data, som kan omfatte et netværksbibliotek, en server, en database og andre attributter. I dette tilfælde er datakilden en sti til en Oracle-database. Når du tilslutter til en datakilde, kontrollerer ODBC Driverstyring Windows-registreringsdatabasen for bestemte tilslutningsoplysninger.

Posten, som oprettes i registreringsdatabasen af ODBC-datakildeadministrator, benyttes af ODBC Driverstyring og ODBC-driverne. Denne post indeholder oplysninger om de enkelte datakilder og de tilknyttede drivere. Før du kan tilslutte til en datakilde, skal tilslutningsoplysningerne herfor først føjes til registreringsdatabasen.

Du kan tilføje og konfigurere datakilder ved at oprette adgang til ODBC-administrator via 32-bit ODBC i Windows Kontrolpanel. ODBC-administrator opdaterer derefter datakildens tilslutningsoplysninger. Når du tilføjer datakilder, opdaterer ODBC-administrator registreringsoplysningerne for dig.

Sådan tilføjes en datakilde i Windows

1	Dobbeltklik på ikonet ODBC-datakilder i Windows Kontrolpanel for at starte ODBC-administrator.

2	Når du ser dialogboksen ODBC-datakildeadministrator, skal du klikke på Tilføj. Dialogboksen Opret ny datakilde vises.

3	Marker ODBC Driver, og klik derefter på Udfør. Dialogboksen Microsoft ODBC til Oracle Installation vises.

4	Skriv navnet på den datakilde, du vil have adgang til, i boksen Datakildenavn. Du kan benytte et navn efter eget valg.

5	Skriv beskrivelsen af driveren i boksen Beskrivelse. I dette valgfri felt beskrives den databasedriver, som datakilden skal tilsluttes. Du kan benytte et navn efter eget valg.

6	Skriv dit brugernavn til databasen i boksen Brugernavn. Brugernavnet er dit databasebruger-id.

7	Skriv tilslutningsstrengen til Oracle-serveren i boksen Server. Tilslutningsstrengen identificerer den Oracle-server, du vil have adgang til.

8	Klik på OK for at tilføje datakilden.

Bemærk!   Dialogboksen Datakilder vises, og ODBC-administrator opdaterer registreringsoplysningerne. Brugernavnet og tilslutningsstrengen, som du har skrevet, fungerer nu som standardværdier for datakildetilslutningen, uanset om du foretager tilslutningen ved hjælp af en dialogboks eller en tilslutningsstreng.

9	Du kan klikke på Indstillinger for at foretage yderligere angivelser for Oracle ODBC-installationen.

Oversættelse

Klik på Vælg for at vælge en indlæst dataoversætter. Strandardindstillingen er Ingen oversætter.

Ydeevne

Medtag REMARKS i katalogfunktioner angiver, om driveren returner Remarks-kolonner til resultatsættet SQLColumns. ODBC-driveren giver hurtig adgang, når denne værdi ikke er angivet.

Medtag SYNONYMS i SQLColumns angiver, om driveren returnerer kolonneoplysninger.

Tilpasning

Gennemfør DayOfWeek-standard for ODBC angiver, om resultatsættet skal stemme overens med det angivne ODBC day-of-week-format (søndag = 1, lørdag = 7).

10	Klik på Tilføj for at tilføje flere datakilder, eller klik på Luk for at afslutte.

Sådan ændres en datakilde i Windows

1	Start ODBC-administrator. Dialogboksen Datakilder vises.

2	Marker den Oracle-datakilde, du vil ændre, i dialogboksen Datakilder, og klik derefter på Konfigurer. Dialogboksen Microsoft ODBC til Oracle Installation vises.

3	Rediger de tilgængelige datakildefelter, og klik derefter på OK.

Når du har ændret oplysningerne i dialogboksen, opdaterer ODBC-administrator registreringsoplysningerne.


Konfigurere Microsoft Oracle ODBC Driver

Du kan styre Oracle-driverens ydeevne ud fra dit kendskab til datamiljøet og ved at foretage en korrekt angivelse af parametrene for datakildetilslutningen enten i dialogboksen ODBC-datakildeadministrator eller via parametrene for tilslutningsstrengen. I dialogboksen vises følgende kontrolelementer for tilslutning til en datakilde enten ved hjælp af dialogboksen eller tilslutningsstrenge:

•	Fanen Bruger-DSN   Viser en liste med de lokale datakildenavne på computeren.

•	Fanen System-DSN   Viser en dialogboks, hvori du kan tilføje eller slette en systemdatakilde. Alle brugere på den lokale computer har adgang til systemdatakilder.

•	Fanen Fil-DSN   Viser en dialogboks, hvori du kan tilføje eller slette en fildatakilde på den lokale computer. Fildatakilder kan deles af alle brugere, som har den samme driver installeret.

•	Fanen ODBC-drivere   Viser en liste med installerede ODBC-drivere.

•	Fanen Sporing   Viser en dialogboks, hvori du kan angive, hvordan ODBC Driverstyring sporer kald til ODBC-funktioner. Du kan konfigurere sporing separat for hvert enkelt ODBC-program, der er installeret.

•	Fanen Gruppering af forbindelser   Viser en dialogboks, hvori du kan vælge tilslutningsindstillinger for hver enkelt driver, der er installeret.

•	Fanen Om   Viser en dialogboks med de installerede ODBC-komponentfiler.

Når du har tilføjet en datakilde, kan du benytte dialogboksen ODBC-datakildeadministrator til at konfigurere adgangen til datakilden. Marker en datakilde, og klik derefter på en af fanerne for at redigere eller gennemse oplysningerne.

Standardindstillingen (50) for antallet af sætningshandles angives af serveren.


Tilslutte til en datakilde

Et ODBC-program kan overføre tilslutningsoplysninger på flere forskellige måder. Programmet kan f.eks. få driveren til altid at spørge brugeren om tilslutningsoplysninger. Eller programmet skal modtage en tilslutningsstreng, som angiver datakildens tilslutning. Det afhænger af tilslutningsmetoden i det anvendte ODBC-program, hvordan der tilsluttes til en datakilde.

En almindeligt benyttet måde er at tilslutte til en datakilde via dialogboksen Datakilde. Hvis det anvendte ODBC-program er installeret, så det benytter en dialogboks, vises dialogboksen, og du får besked på at angive oplysningerne for at tilslutte til datakilden.

Du kan også tilslutte til en datakilde ved hjælp af tilslutningsstrengen.

Sådan tilsluttes til en datakilde via en dialogboks

1	Når du ser dialogboksen Datakilde, skal du markere en Oracle-datakilde og derefter klikke på OK. Dialogboksen Tilslut vises.

2	Skriv de korrekte oplysninger i dialogboksen Tilslut, og klik derefter på OK.

Når tilslutningsoplysningerne er bekræftet, kan programmet benytte ODBC-driveren til at få adgang til oplysningerne i datakilden.


Attributter til tilslutningsstrenge

I stedet for at benytte en dialogboks vil det i nogle programmer eventuelt være nødvendigt at benytte en tilslutningsstreng, som angiver oplysningerne for tilslutning til en datakilde. Tilslutningsstrengen består af et antal attributter, som angiver, hvordan en driver tilsluttes en datakilde. En attribut identificerer en bestemt oplysning, som driveren har brug for, før tilslutningen til den pågældende datakilde kan oprettes. De enkelte drivere kan have forskellige attributsæt, men formatet for tilslutningsstrengen er altid det samme, nemlig:

"DSN=datakildenavn[;SERVER=værdi] [;PWD=værdi] [;UID=værdi] [;<attribut>=<værdi>]"

Bemærk!   Microsoft ODBC Driver til Oracle understøtter version 1-formatet for tilslutningsstrenge, som er lidt anderledes.

Du skal angive navnet på datakilden, hvis du ikke angiver attributterne UID, PWD, SERVER (eller CONNECTSTRING) og DRIVER. Alle øvrige attributter er valgfri. De attributter, som du ikke angiver, indstilles efter attributterne, som du har angivet på DSN-fanen i dialogboksen ODBC-datakildeadministrator. Der kan være forskel på store og små bogstaver i attributværdien.

Der er følgende attributter til tilslutningsstrengen:

Attribut	Beskrivelse	Standardværd
DSN	Datakildens navn. Dette navn er angivet på fanen ODBC-drivere i dialogboksen ODBC-datakildeadministrator.	“”
PWD	Adgangskoden til den Oracle-server, du vil have adgang til.	“”
SERVER	Tilslutningsstrengen til den Oracle-server, du vil have adgang til.	“”
UID	Brugernavnet til Oracle-serveren. Det afhænger af det system, du benytter, om denne attribut er valgfri. Det vil sige, at bestemte databaser og tabeller eventuelt skal modtage denne attribut af sikkerhedsmæssige årsager. Benyt “/” for at benytte Oracle-operativsystemets adgangsgodkendelse.	“”
BUFFERSIZE	Den optimale bufferstørrelse, som anvendes ved hentning af kolonner. Driveren optimerer hentningen, så der ved en enkelt hentning fra Oracle-serveren returneres tilstrækkeligt mange rækker til at fylde en buffer, som har den angivne størrelse. Højere værdier er tilbøjelige til at øge ydeevnen, hvis du henter mange data.	65535
SYNONYMCOLUMNS	Når denne værdi er sand (1), returnerer et API-kald, SQLColumn( ), kolonneoplysninger. Ellers returnerer SQLColumn( ) kun kolonner til tabeller og visninger. ODBC-driveren giver hurtigere adgang, når denne værdi ikke er angivet.	1
REMARKS	Når denne værdi er sand (1), returnerer driveren Remarks-kolonner til resultatsættet SQLColumns. ODBC-driveren giver hurtigere adgang, når denne værdi ikke er angivet.	0
StdDayOfWeek	Gennemtvinger ODBC-standarden for DAYOFWEEK-skalaren. Denne attribut er aktiveret som standard, men brugere, der har brug for den lokaliserede version, kan ændre indstillingen for at benytte alle oplysningerne, som returneres fra Oracle.	1
En tilslutningsstreng som f.eks. tilslutter til datakilden Medarbejdere ved hjælp af Oracle-serveren mickey.world og Oracle-brugeren cindy, ser sådan ud:

"DSN=medarbejdere;UID=cindy;PWD=hemmeligt;SERVER=mickey.world"

En tilslutningsstreng, som tilslutter til datakilden Lønningsliste ved hjælp af operativsystemgodkendelse og Oracle-serveren moola, ser sådan ud:

"DSN=lønningsliste;UID=/;PWD=;SERVER=moola"


ODBC-kompatibilitetsniveauer

ODBC angiver to forskellige kompatibilitetsstandarder for drivere: API-kompatibilitet og grammatisk SQL-kompatibilitet. API-kompatibilitet henviser til de funktioner, som understøttes af en driver. SQL-kompatibilitet henviser til den SQL-grammatik, som driveren understøtter. Kompatibilitetsstandarderne er inddelt i niveauer.

API-kompatibilitetsniveauer

ODBC-driveren understøtter funktioner på kerneniveau og API-funktioner på niveau 1. Desuden understøtter driveren følgende API-funktioner på niveau 2:

•	SQLBrowseConnect( )

•	SQLDataSources( )

•	SQLDescribeParam( )

•	SQLExtendedFetch( )

•	SQLForeignKeys( )

•	SQLMoreResults( )

•	SQLNativeSql( )

•	SQLNumParams( )

•	SQLPrimaryKeys( )

•	SQLProcedureColumns( )

•	SQLProcedures( )

•	SQLSetPos( )

•	SQLSetScrollOptions( )

Understøttede indstillinger

Driveren understøtter følgende indstillinger for niveau 1-funktionerne SQLGetConnectOption( ) og SQLSetConnectOption( ):

•	SQL_ACCESS_MODE (kun SQLGetConnectOption( ))

•	SQL_AUTOCOMMIT

•	SQL_ODBC_CURSORS

•	SQL_OPT_TRACEFILE

•	SQL_OPT_TRACE

•	SQL_TRANSLATE_DLL

•	SQL_TRANSLATE_OPTION

•	SQL_TXN_ISOLATION

Driveren understøtter følgende indstillinger for niveau 1-funktionerne SQLGetStmtOption( ) og SQLSetStmtOption( ):

•	SQL_BIND_TYPE

•	SQL_CONCURRENCY

•	SQL_CURSOR_TYPE

•	SQL_KEYSET_SIZE

•	SQL_MAX_ROW

•	SQL_ROWSET_SIZE


SQL-kompatibilitetsniveauer

ODBC-driveren understøtter Minimum SQL-grammatikken og Core SQL-grammatikken og understøtter desuden følgende ODBC-udvidelser til SQL:

•	Dato, klokkeslæt og timestampdata

•	Venstre og højre joinforbindelser

•	Numeriske funktioner:

abs	log	round	tan
ceiling	log10	second	truncate
cos	mod	sign
exp	pi	sin
floor	power	sqrt
•	Datofunktioner:

curdate	dayofweek	monthname	second
curtime	dayofyear	minute	week
dayname	hour	now	year
dayofmonth	month	quarter
•	Strengfunktioner:

ascii	left	right	ucase
char	length	rtrim
concat	ltrim	soundex
lcase	replace	substring
•	Typekonverteringsfunktion:

convert

•	Systemfunktioner:

ifnull

user


Tilknytte datatyper

Oracle-serveren understøtter et sæt af datatyper. ODBC-driveren knytter disse datatyper til de tilhørende ODBC SQL-datatyper. I følgende tabel vises datatyperne til Oracle 7.3 Server og de tilhørende ODBC SQL-datatyper.

Oracle-serverdatatype	ODBC SQL-datatype
CHAR	SQL_CHAR
DATE	SQL_TIMESTAMP
FLOAT	SQL_DOUBLE
INTEGER	SQL_DECIMAL
LONG	SQL_LONGVARCHAR
LONG RAW	SQL_LONGVARBINARY
NUMBER	SQL_DECIMAL
RAW	SQL_VARBINARY
VARCHAR2	SQL_VARCHAR
Bemærk!   ODBC SQL-datatyper understøtter ikke datatypen Oracle MLSLABEL. Skalarværdier returneres i det lokale tegntabelformat.

I Oracle 8 er den maksimale størrelse for en VARCHAR-kolonne øget fra 2000 til 4000 byte. Med klientprogrammet Oracle 7.3.x kan der ikke bindes parameterværdier over 2000 byte. Hvis du opretter en tabel med en VARCHAR-kolonne på mere end 2000 byte, kan du derfor ikke udføre parameterangivne indsætninger, opdateringer, sletninger eller forespørgsler i kolonnen, hvis dataene overskrider klientprogrammets grænse på 2000 byte. Da både Microsoft ODBC Driver til Oracle og Microsoft OLE DB Provider til Oracle benytter parameterangivne indsætninger, opdateringer, sletninger og forespørgsler, meddeles der ORA-01026-fejl i disse tilfælde. Data, som er inden for Oracle-klientprogrammets grænse, fungerer normalt. Du kan undgå begrænsningen på 2000 byte ved at opgradere klientprogrammet til Oracle 8 (8.0.4.1.1c eller nyere).


Brug af Microsoft Transaction Server

Du kan indstille en Oracle-database, så den fungerer sammen med Microsoft Transaction Server-transaktionskomponenter (MTS) under Microsoft Windows NT og Microsoft Windows 95/98. Hvis en Oracle-database skal indstilles, så den fungerer sammen med MTS-komponenter, som understøtter transaktioner, skal systemadministratoren oprette en visning, som kaldes V$XATRANS$. Dette script oprettes ved at køre et script, som leveres af Oracle. Yderligere oplysninger finder du i Microsoft Transaction Server Hjælp eller i Oracle-dokumentationen.


Brug af Microsoft Internet Information Server

Hvis der er problemer med at foretage tilslutning fra et Microsoft Internet Information Server-script (især ORA-12641-fejl), skal følgende linje tilføjes i filen Sqlnet.ora:

SQLNET.AUTHENTICATION_SERVICES = (ingen)

Derved inaktiveres Secure Network Services, så Anonym-tilslutning kan godkendes.


Brug af operativsystemgodkendelse

Adgangsgodkendelsen på Oracle-operativsystemet afhænger af det underliggende operativsystem, som styrer adgangen til databasekonti. Ved brug af denne logontype er det ikke nødvendigt at angive en adgangskode.

Du kan udnytte denne funktion ved at angive “/” som bruger-id og undlade at angive en adgangskode, når der tilsluttes, ved at benytte en af følgende API-funktioner for tilslutning: SQLBrowseConnect, SQLConnect eller SQLDriverConnect.


Begrænset brug af nøglesætdrevne markører

Du skal kunne hente en enkelt ROWID-kolonne til den forespurgte tabel. Du kan ikke benytte en nøglesætdrevet markør til joinforbindelser, forespørgsler eller sætninger med delsætningerne DISTINCT, GROUP BY, UNION, INTERSECT eller MINUS.


Returnere indeksparametre fra lagrede procedurer

I Oracle 7.3 er det ikke muligt at få adgang til en PL/SQL-posttype bortset fra et PL/SQL-program. Hvis der er defineret en PL/SQL-posttype som et formelt argument til en pakkeprocedure eller -funktion, er det ikke muligt at binde dette formelle argument som en parameter. Benyt typen PL/SQL TABLE i Microsoft ODBC Driver til Oracle til at starte indeksparametre fra procedurer med de korrekte escape-sekvenser.

Hvis du vil starte proceduren, skal du benytte følgende syntaks:

{call  <pakkenavn>.<procedure-el.-funktion>;
(..., {resultset <maks.-antal-poster-anmodet> ,<formelt-indeksparam_1>,;
 <formelt-indeksparam_2>,...,<formelt-indeksparam_n> }, ... ) }

Bemærk!

•	Parameteren <maks.-antal-poster-anmodet> skal være større end eller lig med antallet af rækker i resultatsættet. Ellers returnerer Oracle en fejl, som overføres via driveren.

•	Du kan ikke benytte PL/SQL-poster som indeksparametre. Hver enkelt indeksparameter kan kun repræsentere én kolonne i en databasetabel.

I følgende eksempel defineres en pakke med to procedurer, som returnerer forskellige resultatsæt og derefter giver to muligheder for at returnere resultatsæt fra pakken.

Pakkedefinition:

CREATE OR REPLACE PACKAGE SimplePackage AS

TYPE t_id is TABLE of  NUMBER(5)

    INDEX BY BINARY_INTEGER;

TYPE t_Course is TABLE of VARCHAR2(10)

    INDEX BY BINARY_INTEGER;

TYPE t_Dept is TABLE of VARCHAR2(5)

    INDEX BY BINARY_INTEGER;

PROCEDURE proc1

(

o_id 	OUT 	t_id,

ao_course 	OUT 	t_Course,

ao_dept	OUT 	t_Dept

);

TYPE t_pk1Type1 IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;

TYPE t_pk1Type2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;

PROCEDURE proc2

(

i_Arg1	IN 	NUMBER,

ao_Arg2	OUT	t_pk1Type1,

ao_Arg3	OUT	t_pk1Type2

);

END SimplePackage;

CREATE OR REPLACE PACKAGE BODY SimplePackage AS

    PROCEDURE  proc1 ( o_id OUT t_id,

    ao_course OUT t_Course, ao_dept OUT t_Dept   ) AS

    BEGIN

          o_id(1):= 200;

          ao_course(1) :=  'M101';

          ao_dept(1) :=  'EEE' ;

          o_id(2) := 201;

          ao_course(2) :=  'PHY320';

          ao_dept(2) :=  'ECE' ;

     END proc1;

PROCEDURE proc2

(

i_Arg1	IN 	NUMBER,

ao_Arg2	OUT	t_pk1Type1,

ao_Arg3	OUT	t_pk1Type2

)

AS

i	NUMBER;

BEGIN

FOR i IN 1 .. i_Arg1 LOOP

ao_Arg2(i) := 'Rækkenummer ' || to_char(i);

END LOOP;

FOR i IN 1 .. i_Arg1 LOOP

ao_Arg3(i) := i;

END LOOP;

END proc2;

END SimplePackage;

Sådan startes proceduren PROC1

1	Returner alle kolonnerne i et enkelt resultatsæt:

{ call SimplePackage.Proc1( {resultset  3, o_id , ao_course, ao_dept  } ) }

2	Returner hver kolonne som et enkelt resultatsæt:

{call SimplePackage.Proc1( {resultset 3, o_id},  {resultset 3, ao_course}, {resultset 3, ao_dept} ) }

Derved returneres tre resultatsæt: ét for hver kolonne.

Sådan startes proceduren PROC2

1	Returner alle kolonnerne i et enkelt resultatsæt:

{call SimplePackage.Proc2( 5 , {resultset  5, ao_Arg2, ao_Arg3} ) }

2	Returner hver kolonne som et enkelt resultatsæt:

{call SimplePackage.Proc2( 5 , {resultset 5, ao_Arg2}, {resultset 5, ao_Arg3} ) }

Kontroller, at de programmer, du benytter, henter alle resultatsæt ved hjælp af API-funktionen SQLMoreResults. Yderligere oplysninger finder du i ODBC Programmer's Reference.

Bemærk!   I Microsoft ODBC Driver til Oracle version 2.0 kan du ikke benytte Oracle-funktioner, som returnerer PL/SQL-indekser, til at returnere resultatsæt.


Bemærkninger til API-funktioner

Microsoft ODBC Driver til Oracle understøtter API-funktioner på kerneniveau, niveau 1 og niveau 2. Der er en liste med disse funktioner i ODBC-kompatibilitetsniveauer.

•	Grænsefladekompatibilitet på kerneniveau (Core Level Interface - CLI) giver mulighed for at benytte funktioner defineret efter ISO CLI-specifikationen og de obligatoriske funktioner, som er defineret efter X/Open CLI-specifikationen.

•	Kompatibilitet på niveau 1 giver mulighed for at benytte CLI-funktioner samt yderligere funktioner, såsom transaktioner.

•	Kompatibilitet på niveau 2 giver mulighed for at benytte niveau 1-funktioner samt yderligere funktioner, såsom bogmærker, dynamiske parametre og asynkron eksekvering af ODBC-funktioner.


Bemærkninger til trådsikkerhed i API-funktioner

Microsoft ODBC Driver til Oracle er trådsikker. Dog tillader Oracle ikke flere aktive sætninger på en enkelt tilslutning samtidigt. Denne begrænsning gennemtvinges af driveren. Det vil sige, selvom alle tråde i flertrådede programmer til enhver tid kan kalde ind i Oracle ODBC Driver, blokerer driveren for andre tråde fra driveren på den samme tilslutning, indtil den oprindelige tråd forlader driveren.

Driveren blokerer ikke, hvis der er to sætninger på to forskellige tilslutninger. Men der er risiko for blokering, hvis der er to sætninger på en enkelt tilslutning.


API-funktioner på kerneniveau

Funktionerne på dette niveau omfatter minimumniveauet for grænsefladekompatibilitet for ODBC-drivere.

API-funktion	Bemærkninger
SQLAllocConnect	Tildeler hukommelse til en tilslutningshandle (hdbc) i miljøet, der identificeres med henv. Driverstyring behandler dette kald og kalder driverens SQLAllocConnect-funktion, hver gang SQLConnect, SQLBrowseConnect eller SQLDriverConnect kaldes.
SQLAllocEnv	Viser en dialogboks, som angiver kravet til Oracle-klientprogrammet, og returnerer derefter SQL_NULL_HANDLE. Hvis Oracle-klientprogrammet ikke er installeret, tildeler denne funktion hukommelse til en miljøhandle (henv) og initialiserer ODBC-grænsefladen på kaldeniveau, så den kan benyttes af et program.
SQLAllocStmt	Tildeler hukommelse til en sætningshandle, og knytter sætningshandlen til den tilslutning, som er angivet af hdbc. Driverstyring overfører dette kald til driveren, som tildeler hukommelsen til hstmt-strukturen.
SQLBindCol	Tildeler lagerplads til en resultatkolonne, og angiver resultattypen.
SQLCancel	Annullerer behandlingen af en sætningshandle (hstmt). I nogle tilfælde tillader Oracle ikke, at du annullerer en sætning, som kører. Det betyder, at en sætning, som kører, vil fortsætte, indtil Oracle færdiggør behandlingen, hvorefter resultaterne fra sætningerne annulleres af ODBC-driveren.
SQLColAttributes	Returnerer deskriptoroplysninger for en kolonne i et resultatsæt. Deskriptoroplysninger returneres som en tegnstreng, eller en 32-bit værdi, som afhænger af en deskriptor, eller en heltalsværdi.
SQLConnect	Tilslutter til en datakilde. Hvis du vil benytte Oracle-operativsystemgodkendelse, skal du angive “/” som szUID-parameter og “” som szAuthStr-parameter.
SQLDescribeCol	Returnerer resultatkolonnens navn, type, nøjagtighed, skala og ugyldiggørelse. Bemærk!    SQLDescribeCol meddeler beregnede kolonner som SQL_VARCHAR.
SQLDisconnect	Afbryder en tilslutning. Hvis gruppering af forbindelser er aktiveret i et delt miljø, og et program kalder SQLDisconnect på en tilslutning i dette miljø, returneres tilslutningen til forbindelsesgruppen, hvor den stadig er tilgængelig for andre komponenter, som benytter det samme delte miljø.
SQLError	Returnerer fejl eller statusoplysninger vedrørende den seneste fejl. Driveren opretholder en stak eller en liste med fejl, som kan returneres til argumenterne hstmt, hdbc og henv, alt efter hvordan SQLError kaldes. Fejlkøen ryddes efter hver sætning. Henter normalt en Oracle-fejlmeddelelse, og er ellers tom.
SQLExecDirect	Eksekverer en ny, SQL-forberedelsessætning. Driveren benytter de aktuelle værdier for parametermarkørvariablerne, hvis der er parametre i sætningen. Hvis der er mellemrum i tabellen, visningen eller feltnavnene, skal du sætte navnene i omvendte anførselstegn. Hvis databasen f.eks. indeholder en tabel med navnet Min tabel og feltet Mit felt, skal du angive disse identifikatorelementer på denne måde: SELECT “Min tabel”. “Mit felt1”,; “Min tabel”.“ Mit felt1” FROM “Min tabel”
SQLExecute	Eksekverer en forberedt SQL-sætning (en sætning, som er forberedt i forvejen af SQLPrepare). Driveren benytter de aktuelle værdier for parametermarkørvariablerne, hvis der er parametre i sætningen.
SQLFetch	Henter én række fra et resultatsæt, og placerer den de steder, som er angivet af de tidligere kald til SQLBindCol. Forbereder driveren til at kalde SQLGetData for de ubundne kolonner.
SQLFreeConnect	Frigør en tilslutningshandle og al hukommelse, som er tildelt handlen.
SQLFreeEnv	Lukker ODBC-driveren, og frigør al hukommelse, som er knyttet til driveren.
SQLFreeStmt	Standser behandlingen, som er knyttet til en bestemt hstmt, lukker eventuelle åbne markører, som er knyttet til hstmt, kasserer ventende resultater, og kan frigøre alle ressourcer (valgfrit), som er knyttet til sætningshandlen.
SQLGetCursorName	Returnerer navnet på markøren, som er knyttet til den angivne hstmt.
SQLNumResultCols	Returnerer antallet af kolonner i en resultatsætsmarkør.
SQLPrepare	Forbereder en SQL-sætning ved at planlægge, hvordan sætningen skal optimeres og eksekveres. SQL-sætningen kompileres, så den kan eksekveres af SQLExecDirect. Hvis der er mellemrum i tabellen, visningen eller feltnavnene, skal du sætte navnene i omvendte anførselstegn. Hvis databasen f.eks. indeholder en tabel med navnet Min tabel og feltet Mit felt, skal du angive disse identifikatorelementer på denne måde: SELECT “Min tabel”.“Mit felt” FROM “Min tabel” Oplysninger om brug af resultatsæt med indekser som formelle parametre finder du i Returnere indeksparametre fra lagrede procedurer.
SQLRowCount	Oracle giver ikke mulighed for at afgøre antallet af rækker i et resultatsæt, før du har hentet den sidste række. Derfor returneres –1.
SQLSetCursorName	Knytter et markørnavn til en aktiv sætningshandle (hstmt).
SQLSetParam	Erstattet af SQLBindParameter i ODBC 2.x.
SQLTransact	Anmoder om en bekræftelses- eller tilbagerulningshandling for alle aktive handlinger på alle sætningshandles (hstmts), som er knyttet til en tilslutning, eller for alle tilslutninger, som er knyttet til miljøhandlen henv. Hvis en bekræftelse mislykkes i manuel tilstand, forbliver transaktionen aktiv. Du kan vælge at rulle transaktionen tilbage eller forsøge at udføre bekræftelseshandlingen igen. Hvis en bekræftelse mislykkes i automatisk transaktionstilstand, rulles transaktionen automatisk tilbage. Transaktionen kan ikke være inaktiv.


API-funktioner på niveau 1

Funktionerne på dette niveau giver mulighed for at benytte Core Level Interface-kompatibilitet samt yderligere funktioner, såsom understøttelse af transaktioner.

API-funktion	Bemærkninger
SQLColumns	Opretter et resultatsæt for en tabel, som er kolonnelisten til den eller de angivne tabeller. Når du anmoder om kolonner til et PUBLIC-synonym, skal du have angivet tilslutningsattributten SYNONYMCOLUMNS og en tom streng som argumentet szTableOwner. Når der returneres kolonner til PUBLIC-synonymer, angiver driveren kolonnen TABLE NAME som en tom streng. Resultatsættet indeholder yderligere en kolonne, ORDINAL POSITION, for enden af hver enkelt række. Denne værdi er en heltalsplacering for kolonnen i tabellen.
SQLDriverConnect	Tilslutter til en eksisterende datakilde. Yderligere oplysninger finder du i Attributter til tilslutningsstrenge.
SQLGetConnectOption	Returnerer den aktuelle angivelse for en tilslutningsindstilling. Denne funktion understøttes delvist. Driveren understøtter alle værdier for argumentet fOption, men understøtter ikke visse vParam-værdier for fOption-argumentet SQL_TXN_ISOLATION. Yderligere oplysninger finder du i Tabel med tilslutningsindstillinger.
SQLGetData	Henter værdien for et enkelt felt i den aktuelle post i det angivne resultatsæt.
SQLGetFunctions	Returnerer TRUE for alle understøttede funktioner. Implementeres af Driverstyring.
SQLGetInfo	Returnerer oplysninger, herunder SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT og SQLSMALLINT *, om ODBC-driveren og datakilden, som er knyttet til en tilslutningshandle (hdbc).
SQLGetStmtOption	Returnerer den aktuelle angivelse for en sætningsindstilling. Yderligere oplysninger finder du i Tabel med sætningsindstillinger.
SQLGetTypeInfo	Returnerer oplysninger om de datatyper, som understøttes af en datakilde. Driveren returnerer oplysningerne i et SQL-resultatsæt.
SQLParamData	Benyttes sammen med SQLPutData til at angive parameterdata, når sætningen eksekveres.
SQLPutData	Tillader, at et program overfører data for en parameter eller kolonne til driveren, når sætningen eksekveres.
SQLSetConnectOption	Giver adgang til indstillinger, som styrer forskellige aspekter af tilslutningen. Denne funktion understøttes delvist: Driveren understøtter alle værdier for argumentet fOption, men understøtter ikke visse vParam-værdier for fOption-argumentet SQL_TXN_ISOLATION. Yderligere oplysninger finder du i Tabel med tilslutningsindstillinger.
SQLSetStmtOption	Angiver indstillinger, som er relateret til en sætningshandle (hstmt). Yderligere oplysninger finder du i Tabel med sætningsindstillinger.
SQLSpecialColumns	Henter det optimale kolonnesæt, som identificerer en række i tabellen entydigt.
SQLStatistics	Henter en liste med statistik om en enkelt tabel og de indekser, eller kodenavne, som er knyttet til tabellen. Driveren returnerer oplysningerne som et resultatsæt.
SQLTables	Returnerer listen med tabelnavne som angivet med parameteren i sætningen SQLTables. Hvis der ikke er angivet en parameter, returneres tabelnavnene, som er lagret i den aktuelle datakilde. Driveren returnerer oplysningerne som et resultatsæt.  Kald, som foretager en gennemløbning, modtager ikke en resultatsætspost for fjernvisninger eller lokale visninger med angivne parametre. Dog vil et kald til SQLTables med en entydig tabelnavnsangivelse finde tilfælde, som opfylder kriterierne for en sådan visning (hvis tilstede) med dette navn. Derved kan API-funktionen kontrollere for navnekonflikter, før der oprettes en ny tabel. Der returneres PUBLIC-synonymer med “” som TABLE_OWNER-værdi. VIEWS, som tilhører SYS eller SYSTEM, identificeres som SYSTEM VIEW.


API-funktioner på niveau 2

Funktionerne på dette niveau giver mulighed for at benytte niveau 1-grænsefladekompatibilitet samt yderligere funktioner, såsom understøttelse af bogmærker, dynamiske parametre og asynkron eksekvering af ODBC-funktioner.

API-funktion	Bemærkninger
SQLBindParameter	Knytter en buffer til en parametermarkør i en SQL-sætning.
SQLBrowseConnect	Returnerer gentagne niveauer med attributter og attributværdier.
SQLDataSources	Viser en liste med datakildenavne. Implementeres af Driverstyring.
SQLDescribeParam	Returnerer beskrivelsen af en parametermarkør, som er knyttet til en forberedt SQL-sætning. Returnerer et kvalificeret bud på, hvad parameteren er, baseret på en syntaksanalyse af sætningen. Hvis parametertypen ikke kan afgøres, returneres SQL_VARCHAR med en længde på 2000.
SQLDrivers	Implementeres af Driverstyring.
SQLExtendedFetch	Svarer til SQLFetch, men returnerer flere rækker ved hjælp af et indeks for hver kolonne. Resultatsættet kan rulles fremad og kan rulles tilbage, hvis markøren defineres som statisk, og ikke kun fremad. For markører, som kun kan rulles fremad, med standardindstillet kolonnebinding, hentes kolonnedata fra datasæt, som er større end tilslutningsattributten BUFFERSIZE, direkte ind i databuffere. Bogmærker med variabel længde understøttes ikke. Hentning af et rækkesæt ved et offset (ikke 0) fra et bogmærke understøttes heller ikke.
SQLForeignKeys	Returnerer en liste med eksterne nøgler i en enkelt tabel eller en liste med eksterne nøgler i andre tabeller, som refererer til en enkelt tabel.
SQLMoreResults	Afgør, om flere resultater venter på en sætningshandle (hstmt), som indeholder sætningerne SELECT, UPDATE, INSERT eller DELETE. Hvis dette er tilfældet, initialiseres behandlingen af resultaterne.  Oracle understøtter kun flere resultatsæt fra lagrede procedurer, når der benyttes escape-sekvenser med {resultatsæt… }.
SQLNativeSql	Oplysninger om brug heraf finder du i Returnere indeksparametre fra lagrede procedurer.
SQLNumParams	Returnerer antallet af parametre i en SQL-sætning. Antallet af parametre skal være lig med antallet af spørgsmålstegn i den SQL-sætning, som overføres til SQLPrepare.
SQLPrimaryKeys	Returnerer kolonnenavnene, som omfatter den primære nøgle til en tabel.
SQLProcedureColumns	Returnerer en liste med input- og outputparametre, returværdien, kolonnerne i resultatsættet for en enkelt procedure og yderligere to kolonner: OVERLOAD og ORDINAL_POSITION. OVERLOAD er OVERLOAD-kolonnen fra tabellen ALL_ARGUMENTS i Oracle Data Dictionary View. ORDINAL_POSITION er SEQUENCE-kolonnen fra tabellen ALL_ARGUMENTS i Oracle Data Dictionary View. I pakkeprocedurer er PROCEDURE NAME-kolonnen i formatet pakkenavn.procedurenavn. Procedurekolonnerne for et oprettet synonym, som refererer til en procedure eller funktion, returneres ikke.
SQLProcedures	Returnerer en liste med procedurer i datakilden. I pakkeprocedurer er PROCEDURE NAME-kolonnen i formatet pakkenavn.procedurenavn. Da Oracle ikke giver mulighed for at skelne pakkeprocedurer fra pakkefunktioner, returnerer driveren SQL_PT_UNKNOWN for kolonnen PROCEDURE_TYPE.
SQLSetPos	Angiver markørplaceringen i et rækkesæt. Du kan benytte SQLSetPos med SQLGetData til at hente rækker fra ubundne kolonner efter placering af markøren til en bestemt række i rækkesættet. Rækker, som føjes til resultatsættet ved hjælp af fOption SQL_ADD, tilføjes efter den sidste række i resultatsættet.
SQLSetScrollOptions	Angiver indstillinger, som styrer funktionen af markører, der er knyttet til en sætningshandle (hstmt). Oplysninger herom finder du i Tabel med markørtyper og samtidighedskombinationer.


Tabel med tilslutningsindstillinger

Med disse indstillinger kan du brugerdefinere databasetilslutningen i et program.

Tilslutningsindstilling	Bemærkninger
SQL_AUTOCOMMIT	Hvis du vælger SQL_AUTOCOMMIT_OFF, skal programmet udtrykkeligt bekræfte eller rulle transaktionerne tilbage ved hjælp af SQLTransact.
SQL_ODBC_CURSORS	Denne tilslutningsattribut implementeres i Driverstyring.
SQL_OPT_TRACE	Denne tilslutningsattribut implementeres i Driverstyring.
SQL_OPT_TRACEFILE	Denne tilslutningsattribut implementeres i Driverstyring.
SQL_TRANSLATE_DLL	Returnerer fejlen: “Driveren virker ikke.”
SQL_TRANSLATE_OPTION	Der overføres en 32-bit værdi til oversættelses-DLL.
SQL_TXN_ISOLATION	Driveren tillader kun  SQL_TXN_READ_COMMITTED. Følgende vParams understøttes ikke: SQL_TXN_READ_UNCOMMITTED SQL_TXN_REAPEATABLE_READ SQL_TXN_SERIALIZABLE
SQL_ATTR_ENLIST_IN_DTC	Med denne ODBC 3.0- tilslutningsattribut kan du benytte Oracle ODBC Driver i distribuerede transaktioner, som koordineres af Microsoft Transaction Server. Attributten udgør grænsefladepointeren pITransaction for transaktionen som argumentet vParam.
SQL_ATTR_CONNECTION_DEAD	Med denne skrivebeskyttede ODBC 3.5-tilslutningsattribut kan du afgøre, om tilslutningen til Oracle-serveren er mislykket. Kun Get, kan ikke Set.


Tabel med sætningsindstillinger

Med disse indstillinger kan du brugerdefinere en bestemt eksekveringssætning i et program.

Sætningsindstilling	Bemærkninger
SQL_BIND_TYPE	Kan ikke overstige 2.147.483.647 byte eller den tilgængelige hukommelse.
SQL_CONCURRENCY	Oplysninger om tilladte værdier finder du i Tabel med markørtyper og samtidighedskombinationer.
SQL_CURSOR_TYPE	Driveren tillader ikke SQL_CURSOR_DYNAMIC. Se SQLSetScrollOptions for yderligere oplysninger. Oplysninger om tilladte værdier finder du i Tabel med markørtyper og samtidighedskombinationer.
SQL_GET_BOOKMARK	Returnerer en 32-bit heltalsværdi, som er bogmærke for det aktuelle postnummer. Kun Get, kan ikke Set.
SQL_KEYSET_SIZE	Kan kun angives med 0.
SQL_MAX_ROWS	Det højeste antal rækker, som skal returneres fra et resultatsæt.
SQL_ROW_NUMBER	Returnerer et 32-bit heltal, som angiver placeringen af den aktuelle række i resultatsættet. Kun Get, kan ikke Set.
SQL_ROWSET_SIZE	Kan ikke overstige 4.294.967.296 rækker. Computeren skal dog have tilstrækkelig virtuel hukommelse for at kunne håndtere anmodningen.
SQL_USE_BOOKMARKS	Understøtter angivelse af SQL_USE_BOOKMARKS til SQL_UB_ON, og fremsætter bogmærker med en fast længde.


Tabel med markørtyper og samtidighedskombinationer

Markørfunktionen, som brugeren benytter, styres ved hjælp af markørtyper. Opdatering og låsning af et resultatsæt styres af samtidighedsindstillinger.

Markørtype	Samtidighed (tilladte værdier)
SQL_CURSOR_FORWARD_ONLY	SQL_CONCUR_READ_ONLY
SQL_CURSOR_STATIC	SQL_CONCUR_READ_ONLY
SQL_CURSOR_KEYSET_DRIVEN*	SQL_CONCUR_READ_ONLY SQL_CONCUR_LOCK ** SQL_CONCUR_VALUES

Bemærkninger

* Se Begrænset brug af nøglesætdrevne markører.

** SQL_CONCUR_LOCK understøttes kun, når tilslutningsindstillingen SQL_AUTOCOMMIT er angivet med SQL_AUTOCOMMIT_OFF.


Fejlmeddelelser

Når der opstår en fejl, returneres SQLSTATE (en ODBC-fejlkode) og en fejlmeddelelse af Microsoft ODBC Driver til Oracle. Driveren henter disse oplysninger både fra fejl, som registreres af driveren, og fra fejl, som returneres af Oracle-serveren.

Meddelelser returneret af Oracle ODBC Driver

Hvis der en tilgængelig Oracle-fejlmeddelelse, returneres denne med koderne [Microsoft], [ODBC Driver til Oracle] og [Oracle] stillet foran. Hvis ikke, returneres meddelelsen uden koden [Oracle] som vist i følgende eksempler:

Oracle-fejlmeddelelse:

[Microsoft][ODBC Driver til Oracle][Oracle]ORA-nnnnn meddelelsestekst

Oracle ODBC Driver-fejlmeddelelse:

[Microsoft][ODBC Driver til Oracle]